{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Post-hoc Uncertainty Calibration for Domain Drift Scenarios\n",
    "\n",
    "<br>\n",
    "\n",
    "## Examplary script for plotting metrics of post-hoc models with gaussian tuning strategy\n",
    "\n",
    "<br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "import seaborn as sns\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from collections import OrderedDict\n",
    "import os\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "os.chdir(\"..\")\n",
    "from source.postevaluation.evaluator import Evaluator\n",
    "from source.utils.calibration import calculate_expected_calibration_error, calculate_binned_prob_acc_list\n",
    "import source.utils.utils_plotting_experiments as utils_plot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<br>\n",
    "\n",
    "### Specify post-hoc models  and a path to elevator storages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "#names of post-hoc models\n",
    "legend_model_names = [\"Base\",\"TS\",\"ETS\",\"IRM\",\"IROVA\",\"IROVATS\"] \n",
    "#main path to results\n",
    "main_path = \"/\" #SPECIFY PATH TO RESULTS \n",
    "\n",
    "model_specs = [\n",
    "    [os.path.join(main_path,\"Calibration_indomain/Imagenet/ResNet50/Base/\"), 'IMAGENET', 'Base', 'ResNet50'],\n",
    "    [os.path.join(main_path,\"Calibration_indomain/Imagenet/ResNet50/TS/\"), 'IMAGENET', 'TS', 'ResNet50'],\n",
    "    [os.path.join(main_path,\"Calibration_indomain/Imagenet/ResNet50/ETS/\"), 'IMAGENET', 'ETS', 'ResNet50'],\n",
    "    [os.path.join(main_path,\"Calibration_indomain/Imagenet/ResNet50/IROVA/\"), 'IMAGENET', 'IROVA', 'ResNet50'],\n",
    "    [os.path.join(main_path,\"Calibration_indomain/Imagenet/ResNet50/IROVATS/\"), 'IMAGENET', 'IROVATS', 'ResNet50'],\n",
    "    [os.path.join(main_path,\"Calibration_indomain/Imagenet/ResNet50/IRM/\"), 'IMAGENET', 'IRM', 'ResNet50'],\n",
    "   \n",
    "    [os.path.join(main_path,\"Calibration_ood/Imagenet/ResNet50/Base/\"), 'IMAGENET', 'Base-P', 'ResNet50'],\n",
    "    [os.path.join(main_path,\"Calibration_ood/Imagenet/ResNet50/TS/\"), 'IMAGENET', 'TS-P', 'ResNet50'],\n",
    "    [os.path.join(main_path,\"Calibration_ood/Imagenet/ResNet50/ETS/\"), 'IMAGENET', 'ETS-P', 'ResNet50'],\n",
    "    [os.path.join(main_path,\"Calibration_ood/Imagenet/ResNet50/IROVA/\"), 'IMAGENET', 'IROVA-P', 'ResNet50'],\n",
    "    [os.path.join(main_path,\"Calibration_ood/Imagenet/ResNet50/IROVATS/\"), 'IMAGENET', 'IROVATS-P', 'ResNet50'],\n",
    "    [os.path.join(main_path,\"Calibration_ood/Imagenet/ResNet50/IRM/\"), 'IMAGENET', 'IRM-P', 'ResNet50'],\n",
    "]\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<br>\n",
    "\n",
    "### Load dataframe for specified post-hoc models"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Loss_type</th>\n",
       "      <th>Index</th>\n",
       "      <th>Perturbation</th>\n",
       "      <th>Epsilon</th>\n",
       "      <th>Value</th>\n",
       "      <th>NN</th>\n",
       "      <th>Model</th>\n",
       "      <th>Data</th>\n",
       "      <th>Data_Model_NN</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>accuracy</td>\n",
       "      <td>0</td>\n",
       "      <td>imagenet2012_corrupted_gaussian_noise</td>\n",
       "      <td>0</td>\n",
       "      <td>0.745200</td>\n",
       "      <td>ResNet50</td>\n",
       "      <td>Base</td>\n",
       "      <td>IMAGENET</td>\n",
       "      <td>IMAGENET Base ResNet50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>ECE</td>\n",
       "      <td>0</td>\n",
       "      <td>imagenet2012_corrupted_gaussian_noise</td>\n",
       "      <td>0</td>\n",
       "      <td>0.062645</td>\n",
       "      <td>ResNet50</td>\n",
       "      <td>Base</td>\n",
       "      <td>IMAGENET</td>\n",
       "      <td>IMAGENET Base ResNet50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25006</th>\n",
       "      <td>accuracy</td>\n",
       "      <td>0</td>\n",
       "      <td>imagenet2012_corrupted_gaussian_noise</td>\n",
       "      <td>1</td>\n",
       "      <td>0.626160</td>\n",
       "      <td>ResNet50</td>\n",
       "      <td>Base</td>\n",
       "      <td>IMAGENET</td>\n",
       "      <td>IMAGENET Base ResNet50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25007</th>\n",
       "      <td>ECE</td>\n",
       "      <td>0</td>\n",
       "      <td>imagenet2012_corrupted_gaussian_noise</td>\n",
       "      <td>1</td>\n",
       "      <td>0.088460</td>\n",
       "      <td>ResNet50</td>\n",
       "      <td>Base</td>\n",
       "      <td>IMAGENET</td>\n",
       "      <td>IMAGENET Base ResNet50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50012</th>\n",
       "      <td>accuracy</td>\n",
       "      <td>0</td>\n",
       "      <td>imagenet2012_corrupted_gaussian_noise</td>\n",
       "      <td>2</td>\n",
       "      <td>0.536400</td>\n",
       "      <td>ResNet50</td>\n",
       "      <td>Base</td>\n",
       "      <td>IMAGENET</td>\n",
       "      <td>IMAGENET Base ResNet50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2775667</th>\n",
       "      <td>ECE</td>\n",
       "      <td>0</td>\n",
       "      <td>speckle noise</td>\n",
       "      <td>3</td>\n",
       "      <td>0.051126</td>\n",
       "      <td>ResNet50</td>\n",
       "      <td>IRM-P</td>\n",
       "      <td>IMAGENET</td>\n",
       "      <td>IMAGENET IRM-P ResNet50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2800672</th>\n",
       "      <td>accuracy</td>\n",
       "      <td>0</td>\n",
       "      <td>speckle noise</td>\n",
       "      <td>4</td>\n",
       "      <td>0.290800</td>\n",
       "      <td>ResNet50</td>\n",
       "      <td>IRM-P</td>\n",
       "      <td>IMAGENET</td>\n",
       "      <td>IMAGENET IRM-P ResNet50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2800673</th>\n",
       "      <td>ECE</td>\n",
       "      <td>0</td>\n",
       "      <td>speckle noise</td>\n",
       "      <td>4</td>\n",
       "      <td>0.085957</td>\n",
       "      <td>ResNet50</td>\n",
       "      <td>IRM-P</td>\n",
       "      <td>IMAGENET</td>\n",
       "      <td>IMAGENET IRM-P ResNet50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2825678</th>\n",
       "      <td>accuracy</td>\n",
       "      <td>0</td>\n",
       "      <td>speckle noise</td>\n",
       "      <td>5</td>\n",
       "      <td>0.183120</td>\n",
       "      <td>ResNet50</td>\n",
       "      <td>IRM-P</td>\n",
       "      <td>IMAGENET</td>\n",
       "      <td>IMAGENET IRM-P ResNet50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2825679</th>\n",
       "      <td>ECE</td>\n",
       "      <td>0</td>\n",
       "      <td>speckle noise</td>\n",
       "      <td>5</td>\n",
       "      <td>0.137686</td>\n",
       "      <td>ResNet50</td>\n",
       "      <td>IRM-P</td>\n",
       "      <td>IMAGENET</td>\n",
       "      <td>IMAGENET IRM-P ResNet50</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2508 rows × 9 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        Loss_type Index                           Perturbation Epsilon  \\\n",
       "0        accuracy     0  imagenet2012_corrupted_gaussian_noise       0   \n",
       "1             ECE     0  imagenet2012_corrupted_gaussian_noise       0   \n",
       "25006    accuracy     0  imagenet2012_corrupted_gaussian_noise       1   \n",
       "25007         ECE     0  imagenet2012_corrupted_gaussian_noise       1   \n",
       "50012    accuracy     0  imagenet2012_corrupted_gaussian_noise       2   \n",
       "...           ...   ...                                    ...     ...   \n",
       "2775667       ECE     0                          speckle noise       3   \n",
       "2800672  accuracy     0                          speckle noise       4   \n",
       "2800673       ECE     0                          speckle noise       4   \n",
       "2825678  accuracy     0                          speckle noise       5   \n",
       "2825679       ECE     0                          speckle noise       5   \n",
       "\n",
       "            Value        NN  Model      Data            Data_Model_NN  \n",
       "0        0.745200  ResNet50   Base  IMAGENET   IMAGENET Base ResNet50  \n",
       "1        0.062645  ResNet50   Base  IMAGENET   IMAGENET Base ResNet50  \n",
       "25006    0.626160  ResNet50   Base  IMAGENET   IMAGENET Base ResNet50  \n",
       "25007    0.088460  ResNet50   Base  IMAGENET   IMAGENET Base ResNet50  \n",
       "50012    0.536400  ResNet50   Base  IMAGENET   IMAGENET Base ResNet50  \n",
       "...           ...       ...    ...       ...                      ...  \n",
       "2775667  0.051126  ResNet50  IRM-P  IMAGENET  IMAGENET IRM-P ResNet50  \n",
       "2800672  0.290800  ResNet50  IRM-P  IMAGENET  IMAGENET IRM-P ResNet50  \n",
       "2800673  0.085957  ResNet50  IRM-P  IMAGENET  IMAGENET IRM-P ResNet50  \n",
       "2825678  0.183120  ResNet50  IRM-P  IMAGENET  IMAGENET IRM-P ResNet50  \n",
       "2825679  0.137686  ResNet50  IRM-P  IMAGENET  IMAGENET IRM-P ResNet50  \n",
       "\n",
       "[2508 rows x 9 columns]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "metrics = [\"ECE\",\"accuracy\"]\n",
    "data_all = utils_plot.get_data(model_specs, metrics)\n",
    "data_all = utils_plot.clean_df(data_all)\n",
    "data_all"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<br>\n",
    "\n",
    "### Load dataframe for specified post-hoc models and calculate micro average ECEs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "       Value       Perturbation  Model        Tune_Mode General_Model\n",
      "0   0.131203        motion blur   Base  Standard Tuning          Base\n",
      "1   0.158358         glass blur   Base  Standard Tuning          Base\n",
      "2   0.127824          zoom blur   Base  Standard Tuning          Base\n",
      "3   0.136079              frost   Base  Standard Tuning          Base\n",
      "4   0.181615         shot noise   Base  Standard Tuning          Base\n",
      "..       ...                ...    ...              ...           ...\n",
      "14  0.037609       defocus blur  IRM-P             Ours           IRM\n",
      "15  0.026302           contrast  IRM-P             Ours           IRM\n",
      "16  0.073348      impulse noise  IRM-P             Ours           IRM\n",
      "17  0.032229  elastic transform  IRM-P             Ours           IRM\n",
      "18  0.031304            spatter  IRM-P             Ours           IRM\n",
      "\n",
      "[209 rows x 5 columns]\n",
      "       Value       Perturbation  Model        Tune_Mode General_Model\n",
      "0   0.148052        motion blur   Base  Standard Tuning          Base\n",
      "1   0.179587         glass blur   Base  Standard Tuning          Base\n",
      "2   0.142010          zoom blur   Base  Standard Tuning          Base\n",
      "3   0.151790              frost   Base  Standard Tuning          Base\n",
      "4   0.200671         shot noise   Base  Standard Tuning          Base\n",
      "..       ...                ...    ...              ...           ...\n",
      "14  0.041545       defocus blur  IRM-P             Ours           IRM\n",
      "15  0.036516           contrast  IRM-P             Ours           IRM\n",
      "16  0.088370      impulse noise  IRM-P             Ours           IRM\n",
      "17  0.038885  elastic transform  IRM-P             Ours           IRM\n",
      "18  0.036893            spatter  IRM-P             Ours           IRM\n",
      "\n",
      "[209 rows x 5 columns]\n"
     ]
    }
   ],
   "source": [
    "dict_microECE = []\n",
    "dict_microVUCECE = []\n",
    "for data in model_specs:\n",
    "    data_part = utils_plot.get_data([data], [\"matches\", \"confidence_scores\"])\n",
    "    data_part = utils_plot.clean_df(data_part)\n",
    "    if data_part.empty == False:\n",
    "        dict_microECE.append(utils_plot.process_micro_ECE(data_part))\n",
    "        dict_microVUCECE.append(utils_plot.process_micro_vucECE(data_part))\n",
    "df_microECE = pd.concat(dict_microECE)\n",
    "df_microVUCECE = pd.concat(dict_microVUCECE) \n",
    "\n",
    "df_microECE.insert(len(df_microECE.columns), \"Tune_Mode\",1)\n",
    "df_microECE.loc[df_microECE['Model'].apply(lambda x: True if \"-P\" not in x else False), 'Tune_Mode'] = \"Standard Tuning\"\n",
    "df_microECE.loc[df_microECE['Model'].apply(lambda x: True if \"-P\" in x else False), 'Tune_Mode'] = \"Ours\"\n",
    "df_microECE.insert(len(df_microECE.columns), \"General_Model\",1)\n",
    "for legend_model_name in legend_model_names:\n",
    "    df_microECE.loc[df_microECE['Model'].apply(lambda x: True if legend_model_name == x.replace(\"-P\",\"\") else False), 'General_Model'] = legend_model_name\n",
    "\n",
    "df_microVUCECE.insert(len(df_microVUCECE.columns), \"Tune_Mode\",1)\n",
    "df_microVUCECE.loc[df_microVUCECE['Model'].apply(lambda x: True if \"-P\" not in x else False), 'Tune_Mode'] = \"Standard Tuning\"\n",
    "df_microVUCECE.loc[df_microVUCECE['Model'].apply(lambda x: True if \"-P\" in x else False), 'Tune_Mode'] = \"Ours\"\n",
    "df_microVUCECE.insert(len(df_microVUCECE.columns), \"General_Model\",1)\n",
    "for legend_model_name in legend_model_names:\n",
    "    df_microVUCECE.loc[df_microVUCECE['Model'].apply(lambda x: True if legend_model_name == x.replace(\"-P\",\"\") else False), 'General_Model'] = legend_model_name\n",
    "\n",
    "print(df_microECE)\n",
    "print(df_microVUCECE)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<br>\n",
    "\n",
    "### Define color palette and model order for figures"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAucAAABICAYAAABV0lvaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAADBUlEQVR4nO3bu2pUURiG4TUhBMRoIBhSiEltr52dlYIX4BV4BRZi46EUhGBnJZZehYKV2NgIaaPGeIgWEZQxZFvYxsNAFuvbi+dp9xC+HxJ4Z5hMhmEoAABAe3OtBwAAAL+JcwAACCHOAQAghDgHAIAQ4hwAAEKIcwAACDE/y4uXTiwOqyvLtbY0Nz3o+73KdDptPaGapeP9/l6WUsruzrfWE6paPHOy9YSq3n393npCVWsrfd+3vbfbekJVZxc6/vvb+9h6QVXDwlrrCVX93H7fekI1b/f3y5eDg8lhz2aK89WV5fLgzvWjWRXozY9jrSdUtbW11XpCNVfOX209oapH9563nlDVhY1LrSdUdePJq9YTqrp/7XXrCVXdfva49YSqXqxfbD2hmrmnG60nVLV/+mbrCVXt3LrbekI1lz99+OOzvj8qBgCAERHnAAAQQpwDAEAIcQ4AACHEOQAAhBDnAAAQQpwDAEAIcQ4AACHEOQAAhBDnAAAQQpwDAEAIcQ4AACHEOQAAhBDnAAAQQpwDAEAIcQ4AACHEOQAAhBDnAAAQQpwDAEAIcQ4AACHEOQAAhBDnAAAQQpwDAEAIcQ4AACHEOQAAhBDnAAAQQpwDAEAIcQ4AACHEOQAAhBDnAAAQQpwDAEAIcQ4AACHEOQAAhBDnAAAQQpwDAEAIcQ4AACHEOQAAhBDnAAAQQpwDAEAIcQ4AACHEOQAAhBDnAAAQQpwDAEAIcQ4AACHEOQAAhBDnAAAQQpwDAEAIcQ4AACHEOQAAhBDnAAAQQpwDAEAIcQ4AACEmwzD8/4snk71Syma9Oc2dKqV8bj2ikp5vK8V9Y+e+8er5tlLcN3buG6+ebyullPVhGFYOezA/4w/aHIbh3BEMijSZTF72el/Pt5XivrFz33j1fFsp7hs7941Xz7f9i6+1AABACHEOAAAhZo3zh1VW5Oj5vp5vK8V9Y+e+8er5tlLcN3buG6+eb/urmf4hFAAAqMfXWgAAIIQ4BwCAEOIcAABCiHMAAAghzgEAIMQv5DWKVsWpn+wAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 936x72 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "model_order = [\"Base\",\"TS\",\"TS-P\",\"ETS\",\"ETS-P\",\"IROVATS\",\"IROVATS-P\",\"IROVA\",\"IROVA-P\",\"IRM\",\"IRM-P\"]\n",
    "tune_mode_order = (\"Base\",\"TS\",\"ETS\",\"IROVATS\",\"IROVA\",\"IRM\")\n",
    "\n",
    "sns.set_palette(\"Set2\")\n",
    "\n",
    "colors = [\"#e31a1c\",\"#fb9a99\",\"#ff7f00\",\"#fdbf6f\",\"#33a02c\",\"#b2df8a\",\"#1f78b4\",\"#a6cee3\",\"#6a3d9a\",\"#cab2d6\",\"#7D7D7D\",\"#9B9B9B\",\"#B8A392\"]#,\"#b15928\"]\n",
    "colors = colors[::-1]\n",
    "color_dict = OrderedDict(zip(model_order, colors))\n",
    "sns.palplot(colors)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<br>\n",
    "\n",
    "## Plots\n",
    "\n",
    "<br>\n",
    "\n",
    "### Mean Expected Calibration Error (ECE) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7f9aa29dc1c0>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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aCH69esn2rdvL+Ryuejfv7/efbHm/UV98+ZNIYQQ+/btkxoEFidMqFQqkZaWJiZNmiTc3d1FixYtRHBwsEhMTCyLS9AJ9X2Ty+Xi//7v/8SFCxekddrUIuzYsUO0b99etG/fXmrgWpGpG9u1atVKyOVyMXHiRHH69GnpNfiqe/zy+q+++kqqIbt27Vqplbu0JCcnS423w8PDpeV5G1a2bNlSyOVyERUVJa0vjyHi5aCdN0yMHz8+32PSnTt3irlz54px48bpRc0LgwQVKCsrS4waNUq4ubmJVatWaTyHK8j//vc/sXz5ctGtWzfRrVs3ERAQIMLCwvSuncDcuXOFXC4X77//vkbAycjIEN9//32JwoQQL57Nzp8/Xxw/flykpqaWatl1SV2DM3r0aDF69Gghl8tFv379xMmTJ6VtivqiU6/LzMwUjx49Eh999JHw8PAQXl5e4q+//ir18us79f398MMPxffffy+1ORo/frw4c+aMdP9eFSYSExPFd999J/z9/YVcLheDBg3SuyBfEjt37hRyuVz07NkzX9i8du2a6Natm5DL5WL//v1CiPLxWOzy5cviyJEjYv369eLkyZMF1uwVFCbU2+XdRn29ug4TDBJUoLCwMCGXy8Unn3ySL0Q8ffpUxMTEiJMnT2r8KhXiRS2GulukPjp58qQYP358gQ3YMjMztQoT5fEXUEnkbVj5999/i8uXL4vAwEApTMTGxkrbFvVBfufOHeHv7y99+AcEBBTaBqAiUXd1nDFjhvS6PHPmjBgwYECJwkR2drbYunWrkMvlwtPTUyxYsEDv2iXllfc99fL7S32NT548EaNHjxYtWrQQMTEx+bZVf06NGTNGr7t2qoWFhYmePXsKV1dXIZfLRfv27cX48eM1upyrFRQm1I858t4DfQhPDBJUoODgYOHu7p7vufWWLVukZ3Rubm6iS5cu4scff5TW69sLvCBF1a5oGyYM1fz58/M1rFQqleLs2bNahYmAgAAxaNAgERUVxTYR4kUbEXVbnZd/cZ89e7bEYeL27dti37594s8//yy0oas+WLJkifj888/F4cOHNZa/HMqVSqXUs2rYsGFSY271dn/99Zfw9vYWbdq00agd00eLFy8WcrlctGnTRrz//vti4MCBomPHjkIul4t33nlH3L17N98+RYUJffoBwyBBGpRKpXj+/Ll45513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\n",
      "text/plain": [
       "<Figure size 540x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pylab as plt\n",
    "\n",
    "df = df_microECE.copy()\n",
    "df = df.loc[df.Perturbation.isin([\"general_gaussian_noise\"])==False]\n",
    "df = df.loc[df.Perturbation.isin([\"imagenet2012_corrupted_gaussian_noise\"])==False]\n",
    "\n",
    "sns.set_style(\"whitegrid\", {'axes.grid' : False})\n",
    "sns.set_context(\"poster\")\n",
    "\n",
    "ax = sns.catplot(\n",
    "    x=\"General_Model\",\n",
    "    y=\"Value\",\n",
    "    hue=\"Tune_Mode\",\n",
    "    data=df,\n",
    "    aspect=1.5, \n",
    "    kind=\"bar\",\n",
    "    palette=(\"#8497B0\",\"#98C683\"),\n",
    "    order=tune_mode_order, \n",
    "    legend=False\n",
    ")\n",
    "\n",
    "plt.xticks(rotation=45)\n",
    "ax.set(xlabel='', ylabel='ECE', title='')\n",
    "handles, labels = ax.fig.gca().get_legend_handles_labels()\n",
    "plt.legend(handles=handles[0:], labels=labels[0:], bbox_to_anchor=(.07, 0.9, 0.6, .102),\n",
    "           borderaxespad=0.,fontsize=17)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<br>\n",
    "\n",
    "### Dependency of accuracy and ECE on level of domain shift. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Text(0.5, 0, 'Epsilon'), Text(0, 0.5, 'Accuracy'), Text(0.5, 1.0, '')]"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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ITg4mJ07d2IwGCziFy5c4I477qCwsJB77rmHv//979eVZ0OhwlBERESkgYiJiSEmJqbWxmtCYmIi69evJynJtM9hXFwcgwYNMudVF54BICvzPHMeDLJ3Gkz5qOqL0+effx4fHx/y8/P5/vvvWbNmDd9++y1r167F1dXV4lwXFxfOnTvH7t27uf322y1i69evx9FREyRtpcJQREREROqMaxV214pfYe8RPylfv379CAsLA2DEiBEEBATw7rvvsm3bNgYOHGhxblhYGJ6enhiNxjKFYUJCAr169dJUXxupMBQRERGRWuPqwi4xMdHqCN31TvWsLSN+YruOHTvy7rvvcvLkSavxoUOHMnfuXPLy8nB3dwfg+PHj7N+/n4kTJ6owtJEKQxERERGpda63sFPhV/+cPn0aAF9fX6vxwYMH8/rrr7N582aGDh0KgNFoxM/Pjx49etRYnnWdCkMRERERqTVU2MnFixdxcXExv2M4b9483Nzc6NWrl9XzQ0JCuO222zAajRaF4aBBg3B2dq7J1Os0FYYiIiIiIlJrXCnuroiMjOSNN94gNDS0wmuee+450tPTOX78OCkpKWX6kYqpMBQRERERkVrjjTfewN/fn8zMTFauXMkPP/xQZjXSq/Xr14+XXnqJdevWceTIESIjI2nfvn0NZVw/qDAUEREREZFao0OHDuZVSfv168d9993H1KlTSUxMNC8uczVPT0/69OnD6tWrSU1N5eGHH67JlOsFbewhIiIiIiK1krOzM08//TSpqaksXbq0wnOHDh3Kzz//TGZmpqaRXgeNGIqIiIiISK3VrVs3oqOjWbx4MSNHjix31PD2228nLi4OLy8vIiMjazjLuk8jhiIiIiIiUquNGzeOjIwMVqxYUe45BoOBJ554glGjRtVgZvWHRgxFREREROoYH78gpnx03t5p4OMXVCP3GTBgABERESxatIgHHngAFxeXGrlvQ+JQWlpaau8kaotTp07Rp08ftm7dSnh4uL3TEREREZF6yNbvOQ8dOkS7du1qMDNpCMr7c6WppCIiIiIiIg2cppL+RnFxMQCpqal2zkRERERE6qsr32te+d5TpDZQYfgb586dA+Chhx6ycyYiIiIiUt+dO3dOq2dKraHC8Deio6NZtmwZwcHBGAwGe6dT5VJTU3nooYdYtmyZedNQqRv0tavb9PWru/S1q9v0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1TregY2IO2r/2V/egY1q5D4DBgwgIiKCRYsW8cADD2iF72rgUFpaWmrvJERERERExNKhQ4do166dvdOQeqa8P1eOdshFREREREREahEVhiIiIiIiIg2cCkMREREREZEGToWhiIiIiIhIA6fCUEREREREpIFTYSgiIiIiUktpAwGpShX9eVJhKCIiIiJSCzk5OVFUVGTvNKQeKSwsxGAwWI2pMBQRERERqYXc3NzIzs62dxpSj2RlZeHt7W01psJQRESqxJ///GeioqI4deqUue3rr78mKiqKuXPn2jEzEZG6KTg4mHPnzpGbm6sppXLdSktLKSgo4Pz581y4cIGAgACr5znVcF4iIlLFTp06RZ8+fSo8p3PnzixdurSGMhIRkarg5uZGaGgoqamp5Ofn2zsdqcMMBgPe3t5ERETg6upq9RwVhiIi9USzZs0YPHiw1ViTJk2q/f7Tpk3j0UcfJTQ0tNrvJSLSUPj6+uLr62vvNKQBUGEoIlJPNGvWjMmTJ9vt/iEhIYSEhNjt/iIiInL99I6hiEgDcurUKaKiovjzn//Mzz//zLhx47j11lu59dZb+X//7/9x9OjRMtccO3aM6dOn07t3b6Kjo+nSpQvDhg0jPj7e4jxr7xhWZPPmzTz44IO0b9+eW265heHDh/Of//ynzHmrV68mKiqK1atX8/nnn3P//fdzyy230KVLF5555hkuXLhwfR+GiIiImKkwFBFpgFJSUnjooYcoLS3l4Ycfpnv37mzfvp0HHniAEydOmM87e/Ys9957L5s2baJ9+/aMHTuWmJgYvLy8WL58+XXf/91332XSpEkcO3aMYcOGcd9993HhwgWef/55/u///s/qNdu2beOxxx4jJCSEBx54gKZNm7JmzRoef/zx685DRERETDSVVESknjh+/Hi5q3/ecccd3HLLLebjb7/9lscff5wpU6aY2/7zn//w/PPP8+qrr/L2228DsHHjRi5dusQ///lP+vbta9Hn9Y7UnThxgjfffJOQkBBWr15NcHAwAJMnT+b+++/no48+YuDAgXTu3Nniuu3bt/PBBx/QoUMHAIqLixk9ejR79uzh+++/t3g+ERERqRwVhiIi9cTx48eZN2+e1Zi3t7dF4eTr68ujjz5qcc4999zDwoUL2blzJxcuXMDf398cc3NzK9Pnb+OVsXbtWoqLixk3bpy5KATw8vJi0qRJTJkyhU8++aRMYTh48GBzUQimFdaGDRvGnj17OHDggApDERGRG6DCUESknujZsycLFiyw6dx27drh4eFh0ebg4ED79u05duwYv/zyC126dKFXr1688cYbTJo0iYEDB9KtWzc6depEWFjYdef5888/A9CpU6cysSvF4OHDh8vEfv/735dpu5JHVlbWdecjIiIiesdQRKRBCgwMtNoeFBQEwKVLlwBo2rQpy5cv5/bbb2fDhg08/fTT3HnnnQwfPpzPP//8uu6dnZ1tca/fCggIwMnJyXzOb3l5eZVpMxgMAJSUlFxXLiIiImKiwlBEpAFKT0+32n7+/HnANPX0irZt2zJv3jz27NnDRx99xMSJEzl27Bj/7//9P44cOVLpe18p8K7c67cuXLhAUVGR1SJQREREqo8KQxGRBujQoUPk5uZatJWWlrJv3z4cHR1p06ZNmWtcXFzo0KED06ZNY8qUKRQUFFzXqGHbtm0B+Oabb8rErrRdOUdERERqhgpDEZEG6OLFi7z77rsWbStXruTYsWPceeed5oVlfvzxR6vTOq+MOLq6ulb63kOGDMFgMLBo0SKLkcucnBzzqqp33313pfsVERGR66fFZ0RE6omKtqtwdXVlwoQJ5uOOHTvywQcfsH//fqKjozl27BibN2/Gz8+PGTNmmM9bs2YN//nPf+jQoQMRERF4enpy+PBhdu3aRePGjRk4cGCl84yMjGTq1Km8/vrrDB06lJiYGJycnNi8eTOnT5/mwQcfLLMiqYiIiFQvFYYiIvXEtbar+G1h2LRpU/7yl7/wj3/8gw8//BAwrWo6ffp0IiMjzecNHjyY/Px89u7dy/79+ykqKqJRo0aMHTuWcePG4evre125Pvroo0RGRrJ48WJWr15NSUkJLVu25LHHHmPEiBHX1aeIiIhcP4fS0tJSeychIiI149SpU/Tp04dhw4Yxc+ZMe6cjIiIitYTeMRQREREREWngVBiKiIiIiIg0cCoMRUREREREGji9YygiIiIiItLAacRQRERERESkgVNhKCIiIiIi0sCpMBQREREREWngVBiKiIiIiIg0cCoMRUREREREGrj/D2NoAcUyyxVJAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 864x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df = data_all.loc[data_all.Loss_type.isin([\"accuracy\"])]\n",
    "\n",
    "df = df.loc[df.Perturbation.isin([\"general_gaussian_noise\"])==False]\n",
    "df = df.loc[df.Perturbation.isin([\"imagenet2012_corrupted_gaussian_noise\"])==False]\n",
    "\n",
    "sns.set(font_scale=1.6)\n",
    "plt.figure(figsize=(12,5))\n",
    "\n",
    "with sns.axes_style(\"ticks\"):\n",
    "    ax = sns.boxplot(\n",
    "        x=\"Epsilon\",\n",
    "        y=\"Value\",\n",
    "        hue=\"Model\",\n",
    "        data=df,\n",
    "        hue_order=model_order,\n",
    "        palette=color_dict,\n",
    "        saturation=1.0,\n",
    "    )\n",
    "\n",
    "h, l = ax.get_legend_handles_labels()\n",
    "ax.legend(h, l, facecolor='white', fontsize=17, bbox_to_anchor=(1.0, 1.0))\n",
    "\n",
    "ax.set(xlabel='Epsilon', ylabel='Accuracy', title='')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Text(0.5, 0, 'Epsilon'), Text(0, 0.5, 'ECE'), Text(0.5, 1.0, '')]"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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Li4uqmUtBg8erFrv8LXXXsPJkycxefJk/O1vf0NAQADKy8shk8mQkZGBXbt2wdfXV+8/B6ExMSQiIiIiIsEkJiaq/r+NjQ38/f3x+uuvY/r06QAAV1dXrF+/Hh999BESExNhY2ODp556CitWrFAbDmpnZ4fJkyfjxIkTOHz4MKqqqtC5c2fExcVh5syZqv3EYjG2bduGf//739i/fz+2b98OJycn+Pv745VXXoGHh4f+Lt6AMDEkIiIiIjIibmJ3bD/ws9BhwE3s3q7jo6OjER0d3aJ9//znP2Pz5s2Ntl+6dEn1/21sbPD//t//a9H53NzcsGTJEixZsqRlwZoBJoZEREREREZkxccrhQ6BTBCLzxAREREREZk5JoZERERERERmjokhERERERGRmWNiSEREREREZOaYGBIREREREZk5JoZERERERERmjokhERERERGRmWNiSEREREREZOaYGBIREREREZk5JoZERERERERmjokhERERERGRmWNiSEREREREZOashA6AiIiIiIha7rXXXoNcLhc6DIjFYqxcubLVxwUEBLRovzlz5iA+Ph7V1dXYvn07tm/fjuvXr6OmpgYSiQSBgYEYN24cBg8e3OoYqDEmhkRERERERkQul2PQoEFCh4Hvv/++TcetWLFC7fW2bdtw6tQpLF++XG17fQL56quvYv/+/RgxYgSioqIgEolw/fp1HD9+HGlpaUwMdYSJIRERERER6U1UVJTa6xMnTuD06dONtgPAL7/8gn379iEuLg4LFixo1F5YWNhhcZobzjEkIiIiIiKDdP36dQBAv379NLZLJBJ9hmPSmBgSEREREZFB8vHxAQBIpVJUVVUJHI1p41BSIiIiIiIySH/9618RGhoKqVSKI0eOoH///ggKCsLgwYPRs2dPocMzKewxJCIiIiIig2RhYYF///vfWLBgAdzd3bF371589NFHGDVqFF544QXk5uYKHaLJYGJIREREREQGy87ODnFxcUhLS8MPP/yAdevWITw8HKdPn8ZLL73EIaY6InhiWFdXh40bN2LkyJEIDAzEkCFD8Mknn6CysrLZYw8dOoS4uDg888wz+Mtf/oIBAwZgwoQJ+Pbbb1FXV6eH6ImIiIiISF9cXV3x9NNPY/Xq1YiKisLVq1eRlZUldFgmQfA5hh9++CFSUlIwevRozJw5ExcuXMC6deuQ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\n",
      "text/plain": [
       "<Figure size 864x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df = data_all.loc[data_all.Loss_type.isin([\"ECE\"])]\n",
    "\n",
    "df = df.loc[df.Perturbation.isin([\"general_gaussian_noise\"])==False]\n",
    "df = df.loc[df.Perturbation.isin([\"imagenet2012_corrupted_gaussian_noise\"])==False]\n",
    "\n",
    "sns.set(font_scale=1.6)\n",
    "plt.figure(figsize=(12,5))\n",
    "\n",
    "with sns.axes_style(\"ticks\"):\n",
    "    ax = sns.boxplot(\n",
    "        x=\"Epsilon\",\n",
    "        y=\"Value\",\n",
    "        hue=\"Model\",\n",
    "        data=df,\n",
    "        hue_order=model_order,\n",
    "        palette=color_dict, \n",
    "        saturation=1.0,\n",
    "    )\n",
    "\n",
    "h, l = ax.get_legend_handles_labels()\n",
    "ax.legend(h, l, facecolor='white', fontsize=17, bbox_to_anchor=(1.0, 1.0))\n",
    "ax.set(xlabel='Epsilon', ylabel='ECE', title='')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
